package com.yuxin.tongyi.lsll.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

import org.apache.commons.logging.Log;
/**
 * 日期处理类
 * legendbaby
 * @author wzl
 * @since Jul 15, 2009
 */
public class DateFormatTool {
	private static SimpleDateFormat dateFormat;
	/**
	 * 字符串转换为yyyy-MM-dd格式
	 * @param date 字符串
	 * @return Date
	 */
	public static Date getDate(String date) {
		try {
			dateFormat = new SimpleDateFormat("yyyy-MM-dd");
			 if("".equals(date)||null==date)
				 return null;
			return dateFormat.parse(date);
		} catch (ParseException pe) {
			return null;
		}
	}
	
	/**
	 * yyyy-MM-dd转换为字符串格式
	 * @param date Date类型
	 * @return 字符串
	 */
	public static String getDate(Date date) {
		dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return dateFormat.format(date);
	}
	
	/**
	 * 字符串转换为yyyy-MM-dd HH:mm:ss格式
	 * @param date 字符串
	 * @return Date
	 */
	public static Date getLongDate(String date) {
		try {
			dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			return dateFormat.parse(date);
		} catch (ParseException pe) {
			return null;
		}
	}
	
	

	
	/**
	 * yyyyMMddHHmmss转换为字符串格式
	 * @param date Date类型
	 * @return 字符串
	 */
	public static String getLongStringDate(Date date) {
		dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
		return dateFormat.format(date);
	}
	/**
	 * yyyyMMddHHmmssSSS转换为字符串格式
	 * @param date Date类型
	 * @return 字符串
	 */
	public static String getDLongStringDate(Date date) {
		dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		return dateFormat.format(date);
	}
	
	
	public static String getShortDate(Date date) {
		dateFormat = new SimpleDateFormat("yyyyMMdd");
		return dateFormat.format(date);
	}
	
	public static String getLongDate(Date date) {
		dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		return dateFormat.format(date);
	}
	
	
	
	/**
	 * 毫秒转换为yyyy-MM-dd HH:mm:ss日期格式
	 * @param timeMillis 毫秒
	 * @return Date
	 * @since Aug 25, 2009
	 */
	public static Date getLongDate(long timeMillis){
		try {
			dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
			return dateFormat.parse(String.valueOf(timeMillis));
		} catch (Exception e) {
			return null;
		}
		
	}
	/**
	 * 几秒钟后的时间
	 * @param date
	 * @param i
	 * @return
	 */
	
	public static Date addOneSecond(Date date,int i) {   
	    Calendar calendar = Calendar.getInstance();   
	    calendar.setTime(date);   
	    calendar.add(Calendar.SECOND, i);   
	    return calendar.getTime();   
	}  
	/**
	 * 小时的加减
	 * @param date
	 * @param i
	 * @return
	 */
	public static Date addOneHour(Date date,int i) {   
	    Calendar calendar = Calendar.getInstance();   
	    calendar.setTime(date);   
	    calendar.add(Calendar.HOUR, i);   
	    return calendar.getTime();   
	}  
	
	/**
	 * 天数的加减
	 * @param date
	 * @param i
	 * @return
	 */
	public static Date addOneDay(Date date,int i) {   
	    Calendar calendar = Calendar.getInstance();   
	    calendar.setTime(date);   
	    calendar.add(Calendar.DAY_OF_MONTH, i);   
	    return calendar.getTime();   
	}  
	
	/**
	 * 
	 * @param date
	 * @return
	 */
	public static String getShortDateByMillis(String stime) {
		Long time = Long.parseLong(stime + "000");
		Date date = new Date(time);
		dateFormat = new SimpleDateFormat("yyyy-MM-dd");
		return dateFormat.format(date);
	}
}
